package jzqb.dao;


import jzqb.bo.AdminUserInfoBo;
import jzqb.common.Result;
import jzqb.po.AdminLoginLogPo;
import jzqb.po.AdminLoginPo;
import jzqb.po.AdminUserPo;
import net.sf.json.JSONArray;

import java.io.IOException;
import java.util.List;

public interface AdminUserInfoDao {
    Result login(String ID, String pwd);
//    AdminUserPo adminuserinfopoByID(String ID);
//    String generateLayoutList(String ID);
//    Result getUserinfoList(UserInfoBo userinfoBo);
    List<AdminUserPo> cutList (AdminUserInfoBo AdminuserinfoBo);
    long cutCount (AdminUserInfoBo AdminuserinfoBo);


    /**
     * 查询所有用户
     * @return
     */
    List<AdminUserPo> findAllUser();

    /**
     * 根据部门ID  查询用户集合
     * @param deptNo  部门编号
     * @return
     */
    List<AdminUserPo> findUsersByDeptNo(String deptNo);

    /**
     * 根据输入用户名  查询用户集合---模糊查询
     * @param userName 输入用户名
     * @return 符合模糊查询的用户集合
     */
    List<AdminUserPo>  getUsrByName(String userName);

    /**
     * 根据用户ID  查询用户
     * @param id  用户ID
     * @return
     */
   AdminUserPo findUserById(String id);

    Result  resetPwd(String id,String pwd);

    Result  mute(AdminUserInfoBo adminUserInfoBo);

    boolean belongToPermissionGroup(String userid,String PermissionGroupID);


    void insertLoginRecord(AdminLoginLogPo adminLoginLogPo);

    Result initPwd(String id,String pwd,String newPwd,String newPwdConfirm);

    AdminUserInfoBo basicInfo(String userid);

    boolean isUserIDExist(String id);

    boolean addUser(AdminUserPo userPo,String type);

    boolean deleteUser(AdminUserPo userPo);

    List<String> getAllFunctionPermissionGroupIdsOfUser(String userid);

    Result changeMyPwd(AdminLoginPo adminloginpo);

    List<AdminUserPo> getAllUser();

    boolean writeExcelData(JSONArray jsonArray) throws IOException;

    List<AdminUserPo> getUserNameById(String recorderId);

    AdminUserInfoBo getUserById(String userId);

    Boolean updateUserInfo(AdminUserInfoBo userPo);
}
